package annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

//自定义注解
public class Demo03 {
    //注解可以显式赋值
    @MyAnnotation2(name = "zsh",schools = {"西北工业大学"},age = 18)
    public void test(){

    }

    @MyAnnotation3("zsh") //只有value可以省略
    public void test2(){

    }
}

@Target(value = {ElementType.TYPE,ElementType.METHOD})
@Retention(value = RetentionPolicy.RUNTIME)
@interface MyAnnotation2{
    //注解的参数：参数类型 + 参数名 + ()  , 不是方法
    String name() default "";
    int age();
    int id() default -1; //默认值-1 表示不存在
    String[] schools() default {"清华大学","北京大学"};
}

@Target(value = {ElementType.TYPE,ElementType.METHOD})
@Retention(value = RetentionPolicy.RUNTIME)
@interface MyAnnotation3{
    //注解的参数：参数类型 + 参数名 + ()  , 不是方法
    String value();
}